# coding: utf-8
from sanic import Sanic
from sanic.response import html, redirect
from user_agents import parse
from tools import RenderHtml

app = Sanic(__name__)

rh = RenderHtml()

# 设置静态资源目录
app.static('/pc/css', './templates/pc/src/css', name='pc-css')
app.static('/pc/imgs', './templates/pc/src/imgs', name='pc-imgs')
app.static('/pc/js', './templates/pc/src/js', name='pc-js')
app.static('/mobile/css','./templates/mobile/src/css', name='mobile-css')
app.static('/mobile/imgs','./templates/mobile/src/imgs', name='mobile-imgs')
app.static('/mobile/js','./templates/mobile/src/js', name='mobile-js')

# 重定向指定路径
@app.route('/')
async def index(request):
    # 判断是电脑端还是移动端，跳转到不同链接
    # 获取用户代理字符串
    user_agent_string = request.headers.get('User-Agent')
    # 解析用户代理
    user_agent = parse(user_agent_string)
    if user_agent.is_pc:
        return redirect('/pc/')
    elif user_agent.is_mobile or user_agent.is_tablet:
        return redirect('/mobile/')
        

# pc 首页路由
@app.route('/pc/')
@rh.template('./pc/src/index.html')
async def pcIndex(request):
    # 定义模板数据
    context = {
        'title': '-动态输出数据-',
        'message': '我是动态输出的数据！！！'
    }
    return context

# mobile 首页路由
@app.route('/mobile/')
@rh.template('./mobile/src/index.html')
async def mobileIndex(request):
    # 定义模板数据
    context = {
        'title': '-动态输出数据-',
        'message': '我是动态输出的数据！！！'
    }
    return context

# pc 新闻页路由
@app.route('/pc/news')
@rh.template('./pc/src/news.html')
async def pcNews(request):
    return {}

# mobile 新闻页路由
@app.route('/mobile/news')
@rh.template('./mobile/src/news.html')
async def mobileNews(request):
    return {}

if __name__ == '__main__':
    app.run(host='0.0.0.0', port=3000, debug=True, auto_reload=True)
    